Explaining Openai's O1 Reasoning Models